#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
GPT-4o Audio Preview 使用示例

展示如何使用重构后的模块化函数处理不同的音频文件
"""

from hello_4oaudio import (
    load_config,
    validate_audio_file,
    create_openai_client,
    prepare_audio_data,
    create_chat_completion,
    process_stream_response,
    save_audio_response,
    print_timing_stats,
    process_audio_request,
)
import time


def example_basic_usage():
    """基本使用示例"""
    print("=== 基本使用示例 ===")
    process_audio_request(".input/hello_en.wav")


def example_custom_processing():
    """自定义处理流程示例"""
    print("\n=== 自定义处理流程示例 ===")

    try:
        # 1. 加载配置
        api_key, base_url = load_config()
        print(f"✅ 配置加载成功: {base_url}")

        # 2. 验证多个音频文件
        audio_files = [".input/hello_en.wav", ".input/hello_cn.wav"]

        for audio_file in audio_files:
            try:
                validate_audio_file(audio_file)
                print(f"✅ 音频文件验证成功: {audio_file}")
            except FileNotFoundError as e:
                print(f"❌ {e}")
                continue

            # 3. 创建客户端
            client = create_openai_client(api_key, base_url)

            # 4. 处理音频
            audio_data = prepare_audio_data(audio_file)

            # 5. 记录时间
            start_time = time.time()

            # 6. 创建请求
            completion = create_chat_completion(client, audio_data)

            # 7. 处理响应
            audio_string, start_audio_time = process_stream_response(completion)

            # 8. 保存音频（使用自定义文件名）
            filename = f"response_{audio_file.split('/')[-1]}"
            save_audio_response(audio_string, filename)

            # 9. 显示统计
            print_timing_stats(start_time, start_audio_time)
            print("-" * 50)

    except Exception as e:
        print(f"❌ 处理失败: {e}")


def example_batch_processing():
    """批量处理示例"""
    print("\n=== 批量处理示例 ===")

    audio_files = [
        ".input/hello_en.wav",
        ".input/hello_cn.wav",
        # 可以添加更多音频文件
    ]

    for i, audio_file in enumerate(audio_files, 1):
        print(f"\n📁 处理第 {i} 个文件: {audio_file}")
        try:
            process_audio_request(audio_file)
            print(f"✅ 第 {i} 个文件处理完成")
        except Exception as e:
            print(f"❌ 第 {i} 个文件处理失败: {e}")


def main():
    """主函数 - 运行所有示例"""
    print("🎵 GPT-4o Audio Preview 使用示例")
    print("=" * 60)

    # 示例1：基本使用
    example_basic_usage()

    # 示例2：自定义处理流程
    example_custom_processing()

    # 示例3：批量处理
    example_batch_processing()

    print("\n🎉 所有示例运行完成！")


if __name__ == "__main__":
    main()
